package alipay.openplatform.edu.campus.jiuye.dao.mappers.topic;

import alipay.openplatform.edu.campus.jiuye.common.page.Page;
import alipay.openplatform.edu.campus.jiuye.model.po.TopicInfoImgPO;
import alipay.openplatform.edu.campus.jiuye.model.po.TopicInfoPO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TopicInfoMapper {
    int deleteBaseByTopicId(Integer topicId);

    int insert(TopicInfoPO record);

    int insertSelective(TopicInfoPO record);

    TopicInfoPO selectByPrimaryKey(Integer topicId);

    int updateByPrimaryKeySelective(TopicInfoPO record);

    int updateByPrimaryKey(TopicInfoPO record);

    /**
     * 通过主题名称喝状态查询
     * @param page topicTitle
     * @param page status
     * @param page pageNo
     * @param page pageSize
     * @return
     */
    List<TopicInfoPO> selectTopicInfoPOByTitleAndStatus(Page page);

    int updataTopicInfoState(@Param("state") Byte state ,@Param("topicId") Integer topicId);

    /**
     *根据城市id查询对应专题
     * @param page 分页查询参数,cityId 城市id  pageNo当前页号,pageSize分页大小
     * @return
     */
    List<TopicInfoImgPO> getTopicInfoByLocation(Page page);

    /**
     *根据城市id和专题类别查询
     * @param page topicType  类型0 招聘会 1 校园专题 2公务员  cityId 城市id  pageNo当前页号,pageSize分页大小
     * @return
     */
    List<TopicInfoImgPO> getTopicInfoList(Page page);

    /**
     *根据城市名称 学校名称 专题名称搜索
     * @param page  condition 搜索条件pageNo当前页号,pageSize分页大小
     * @return
     */
    List<TopicInfoImgPO> searchTopic(Page  page);

    /**
     * 查询单个TopicInfo通过ID;
     * @param topicId
     * @return
     */
    TopicInfoPO selectTopicInfo(Integer topicId);

    /**
     * 根据topicId查询
     * @param topicId
     * @return
     */
    TopicInfoImgPO queryTopicInfoById(@Param("topicId") String topicId);

    /**
     * 查询未发送短信切还没有开始的招聘会列表
     * @return
     */
    List<TopicInfoPO> queryIfSms();

    /**
     * 查询所有校外数据,查询所有校内数据
     * @param page
     * @return
     */
    List<TopicInfoImgPO> getTopicInfoByInnerOrOutList(Page page);

    /**
     * 获得当前sort列最大值
     * @return
     */
    int getCurrentMaxSort();

    /**
     * 置顶或取消置顶
     * @param topicId     专题id
     * @param topState    是否置顶
     * @param currentSort 当前排序号
     */
    int topTopicByIdAndState(@Param("topicId") Integer topicId,
                              @Param("topState") Integer topState,
                              @Param("currentSort") Integer currentSort);

    int updateIfDel(@Param("topicId") Integer topicId, @Param("ifDel") Integer ifDel);
}